﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace FrbaCommerce.AccessData
{
    class adEmpresa
    {


        public static void buscarListaEmpresas(Gets_and_Sets.LEmpresa_getset List, DataGridView dgv1)
        {
            SqlConnection conn = Program.obtenerConexion();
            SqlCommand cmd = Codigo_reutilizable.FuncionesBaseDatos.crearProcedure("GD1C2014.dbo.listaDeEmpresas", conn,
            new SqlParameter("@CUIT", List.CUIT),
            new SqlParameter("@RazonSocial", List.RazonSocial),
            new SqlParameter("@Mail", List.Mail));

            Codigo_reutilizable.FuncionesBaseDatos.CompletarDataGrid(dgv1, conn, cmd);
            dgv1.Columns["emp_usuario_id"].Visible = false;
        }

        public static Gets_and_Sets.Empresa_getset buscarEmpresa(Int32 id)
        {

            Gets_and_Sets.Empresa_getset emp = new Gets_and_Sets.Empresa_getset();

            SqlConnection conn = Program.obtenerConexion();
            SqlCommand cmd = Codigo_reutilizable.FuncionesBaseDatos.crearProcedure("GD1C2014.dbo.buscarUnaEmpresa", conn,
            new SqlParameter("@Id", id));

            SqlDataReader lectura = cmd.ExecuteReader();
            while (lectura.Read())
            {
                emp.Cuit = Convert.ToString(lectura.GetValue(1));
                emp.RazonSocial = Convert.ToString(lectura.GetValue(2));
                emp.Telefono = Convert.ToString(lectura.GetValue(3));
                emp.Fecha_Creacion = Convert.ToString(lectura.GetValue(4));
                
                if (lectura.IsDBNull(5))
                {
                    emp.Mail = "";
                }
                else
                {
                    emp.Mail = Convert.ToString(lectura.GetValue(5));
                }
                emp.Ciudad = Convert.ToString(lectura.GetValue(6));
                emp.Cod_Postal = Convert.ToString(lectura.GetValue(7));
                emp.Localidad = Convert.ToString(lectura.GetValue(8));
                emp.Dom_Calle = Convert.ToString(lectura.GetValue(9));
                emp.Nro_Calle = Convert.ToDecimal(lectura.GetValue(10));

                if (lectura.IsDBNull(11))
                {
                    emp.Piso = 0;
                }
                else
                {
                    emp.Piso = Convert.ToDecimal(lectura.GetValue(11));
                }

                emp.Dpto = Convert.ToString(lectura.GetValue(12));

                emp.nbre_contacto = Convert.ToString(lectura.GetValue(13));

            }
            conn.Close();
            return emp;
        }


        public static List<Gets_and_Sets.NroCuit_getset> buscarCuitdeEmpresa()
        {

            List<Gets_and_Sets.NroCuit_getset> listaDeCUIT = new List<Gets_and_Sets.NroCuit_getset>();

            SqlConnection conexion = Program.obtenerConexion();
            SqlCommand Comando = new SqlCommand("Select emp_cuit from GD1C2014.Monkey_Coders.Empresas", conexion);
            SqlDataReader lectura = Comando.ExecuteReader();

            while (lectura.Read())
            {
                Gets_and_Sets.NroCuit_getset pCUIT = new Gets_and_Sets.NroCuit_getset();

                pCUIT.Cuit = lectura.GetString(0);


                listaDeCUIT.Add(pCUIT);
            }


            return listaDeCUIT;
        }


        public static void ActualizarEmpresa(Gets_and_Sets.Empresa_getset emp, int empresaAModificar)
        {
            int retorno;
            using (SqlConnection conn = Program.obtenerConexion())
            {
                SqlCommand cmd = Codigo_reutilizable.FuncionesBaseDatos.crearProcedure("GD1C2014.dbo.actualizarEmpresa", conn,
                new SqlParameter("@Id", empresaAModificar),
                new SqlParameter("@Cuit", emp.Cuit),
                new SqlParameter("@RazonSocial", emp.RazonSocial),
                new SqlParameter("@Telefono", emp.Telefono),
                new SqlParameter("@Fecha_Creacion", emp.Fecha_Creacion),
                new SqlParameter("@Mail", emp.Mail),
                new SqlParameter("@Ciudad", emp.Ciudad),
                new SqlParameter("@CodPostal", emp.Cod_Postal),
                new SqlParameter("@Localidad", emp.Localidad),
                new SqlParameter("@Dom_Calle", emp.Dom_Calle),
                new SqlParameter("@Nro_Calle", emp.Nro_Calle),
                new SqlParameter("@Piso", emp.Piso),
                new SqlParameter("@Depto", emp.Dpto),
                new SqlParameter("@Contacto", emp.nbre_contacto));



                retorno = cmd.ExecuteNonQuery();
                conn.Close();
            }

            Codigo_reutilizable.Resultado.validar(retorno, "Empresa actualizada");

        }

    }
}